#ifndef MUSICCACHE_H
#define MUSICCACHE_H

#include "Music.h"
#include <map>

class MusicCache
{
    private:
        MusicCache();
        static MusicCache *m_musicCache;
    public:
        virtual ~MusicCache();
        static MusicCache* GetMusicCache();
        void AddMusic(string musicName, string musicFilename);
        void AddMusic(string musicName);
        void PlayMusic(string musicName);
        void PlayMusic(string musicName, CRuint volume);
        void TogglePauseMusic();
        Music* GetMusic(string musicName);

        void Clear();
    protected:
    private:
        Music* m_currentMusic;
        map<string, Music *> m_music;
};

#endif // MUSICCACHE_H
